home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 January / EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso / earcd / faq / commodore / 8bit-emulation-faq / part3.z / part3
Internet Message Format  |  1999-01-01  |  46KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.starnet.net!news.starnet.net!news.dra.com!news-xfer.netaxs.com!netnews.upenn.edu!news.voicenet.com!omni1!tsrken
  2. From: tsrken@voicenet.com (tsr/hornet)
  3. Newsgroups: comp.emulators.cbm,comp.answers,news.answers
  4. Subject: COMP.EMULATORS.CBM: Emulation FAQ for Commodore 8bit Computers (3/4)
  5. Date: 5 Jan 1997 23:43:16 GMT
  6. Organization: Voicenet - Internet Access - (215)674-9290
  7. Lines: 1238
  8. Approved: news-answers-request@MIT.EDU
  9. Message-ID: <5apeak$ec8@news1.voicenet.com>
  10. Reply-To: tsrken@voicenet.com
  11. NNTP-Posting-Host: omni1.voicenet.com
  12. Summary: Emulation FAQ for Commodore 8bit Computers.
  13. Keywords: cbm commodore 8bit emulation faq CBM FAQ
  14. X-Newsreader: TIN [version 1.2 PL2]
  15. Xref: senator-bedfellow.mit.edu comp.emulators.cbm:16261 comp.answers:23492 news.answers:91283
  16.  
  17. Archive-name: 8bit-emulation-faq/part3
  18. Comp-answers-archive-name: commodore/8bit-emulation-faq/part3
  19. News-answers-archive-name: commodore/8bit-emulation-faq/part3
  20. Comp-emulators-cbm-archive-name: 8bit-emulation-faq/part3
  21. Posting-Frequency: twice a month (monthly to news.answers)
  22. Version: 3.5
  23.  
  24.   CBM EMULATION FAQ - (Version 3.5, 4 November 1996)
  25.   =================
  26.  
  27.   This FAQ is usually posted twice a month on the 4th and 19th to 
  28.   comp.emulators.cbm.  Since comp.emulators.cbm was set up to remove the
  29.   emulator discussion from comp.sys.cbm, this FAQ will not be posted there.
  30.  
  31.   Lines preceeded by a '+' have been added or modified since the last version
  32.   was posted.
  33.  
  34.   The FAQ is in four parts due to its size.
  35.   Part 1 is general information and a list of available emulators.
  36.   Part 2 is questions and answers.
  37.   Part 3 is mostly data.
  38.   Part 4 is basically reviews of various emulators.
  39.  
  40.   ---------------------------------------------------------------------------
  41.  
  42.  
  43.   3.5 How-to... (moved from Appendix B).
  44.  
  45.      1. Playing multi-disk-image games with C64S 1.0C
  46.      2. Using VIC-EMU.
  47.      3. Running certain games.
  48.      4. Converting between different file formats.
  49.  
  50.    ==========================================================
  51.  
  52.      1. Playing multi-disk-image games with C64S 1.0C
  53.  
  54.   [Note that v1.1b of C64S allows multi-disk games without hassle.  I 
  55.   include this since some people may not like the time limit in the
  56.   shareware version of C64S 1.1b/c.  -tsr]
  57.  
  58.   J. Kevin Wells - nstn1297@fox.nstn.ca writes:
  59.  
  60.   There is a method of playing multi-disk-image games with C64S 1.0C shareware.
  61.   The method is a bit cumbersome and works best with games that involve
  62.   infrequent disk changes.
  63.  
  64.   1. Copy the first disk-image file as TESTDISK.D64.
  65.   2. Start C64S.
  66.   3. Load and play the game until you are prompted for a new disk.
  67.   4. Press F9 to bring up the utility options. Press Alt-T to enter the 
  68.      tape-image section and press enter on TESTTAPE.T64.
  69.   5. Press F to select the Freeze option and type in a file name. Your game 
  70.      will be saved to the tape drive. If the tape drive is full, delete a file 
  71.      you do not need. 
  72.   6. Press ESC to exit to the C64 emulator.
  73.   7. Press CTRL-BREAK to quit C64S and exit to DOS.
  74.   8. If the game has altered the disk-image in any way (saved your game to the 
  75.      disk, for example), copy TESTDISK.D64 back to its original file name from 
  76.      step 1.
  77.   9. Copy the requested disk-image file (usually Disk 2) to TESTDISK.D64
  78.   10. Start C64S again.
  79.   11. Press F9. Press Alt-T to enter the tape-image section and press enter on 
  80.       TESTTAPE.T64.
  81.   12. Select the file you froze in step 5. Press ESC to exit to the emulator.
  82.   13. Press Shift-TAB to load and run the frozen program. The game should be 
  83.       at the point where it is requesting the disk change. Follow the program's 
  84.       instruction for signaling that you've changed the disk.
  85.   14. When prompted for another disk, repeat the process at Step 4.
  86.  
  87.   One thing to keep in mind is that the Frozen program is kept on the tape 
  88.   drive until you delete it. You might want to delete the frozen file when 
  89.   you're finished playing the game, or between disk swaps. Remember that you 
  90.   can use this frozen file to restore your game at the point it was frozen 
  91.   again and again. The Freeze option is a very powerful feature, similar to 
  92.   the Snapshot cartridge on the original C64. You can use it to save virtually 
  93.   any program at any point - even games that don't have a save function.
  94.  
  95.   I haven't tested this method of using multiple disks with every game out 
  96.   there, but the ones I did try seemed to work. Try the method out with a 
  97.   particular game, if possible, before getting into any heavy gaming sessions.
  98.  
  99.   [note, again, that none of this stuff needs to be done with C64S 1.1b, 
  100.   since it allows multi-disk games without hassle.  The information is
  101.   included just in case you find the ten-minute timer on C64S 1.1b annoying.]
  102.  
  103.    ---------------------------------------------------------------------------
  104.  
  105.      3. Using VIC-EMU.
  106.  
  107.    Question:
  108.    Hi, I'm currently trying to use Peiter van Leuven's VIC-EMU to run some 
  109.    VIC-20 software on my AMIGA.  I have some VIC files on Amiga Formatted 
  110.    floppy's as well, but the documentation doesn't say how to run it with the 
  111.    emulator!  It does suggest that you have to use memory addresses, but how 
  112.    do us non-programmers know what memory addresses to use for a binary file 
  113.    or a BASIC file?  I've had no success.  The command structure is like this;
  114.  
  115.    vic-00 $???? filename
  116.  
  117.    What is the proper address for ???? in order to get a program to run?
  118.  
  119.    -------
  120.  
  121.    Answer 1:
  122.    Well, you might be asking about at what position Basic starts on the VIC.
  123.    On an unexpanded machine, it starts at $1000 (and load file at $1001).
  124.    On a +3k machine (as the emulator default), it starts at $0400 ($0401)
  125.    On a +8k machine and more, Basic starts at $1200. (load at $1201)
  126.  
  127.    Binary files normally load with LOAD "name",device,1 and you have to
  128.    find out where to load it yourself. (I know there's a method by looking
  129.    at the first bytes of the file, but I don't know how).
  130.  
  131.    BTW: The version of VIC-EMU doesn't seem to load files inside the emulator
  132.         very well (e.g the load-command hangs, and there's no RESTORE key).
  133.  
  134.    -------
  135.  
  136.    Answer 2:
  137.    Well, Pieter sent me a message letting me know how to load a BASIC or 
  138.    disk image file into the VIC-EMU.  There is a way to find out what position 
  139.    a file starts at, you look at the first four bytes of the file and then 
  140.    switch them around, or something to that effect.  Once you have done that you
  141.    use that number as the memory address:
  142.  
  143.    vic-20 $1000 filename
  144.  
  145.    Then from the VIC emulator screen you type LOAD "filename",8 and it will 
  146.    load it.  However, my problem is that from the CLI command, I'm not clear 
  147.    on what filename I'm supposed to include!  The filename for the program I 
  148.    want to load or what?  The emulator won't activate unless you include a 
  149.    filename in the CLI command, but putting the filename for the disk-image 
  150.    file you want doesn't seem to do anything, you still have to load it the 
  151.    old fashioned way (LOAD "",8) to get it to show up.  I guess my question 
  152.    is; how do I just make the emulator activate (i.e. just like a vic after 
  153.    power up) without having it run a program, etc
  154.  
  155.    ---------------------------------------------------------------------------
  156.  
  157.    4. Getting certain games to work.
  158.  
  159.    a. Racing Destruction Set
  160.  
  161.       Oh, I bet I know what your Racing Destruction Set problem is.  It's the
  162.       one that the game tells you to flip to side two, but it never tells you
  163.       to flip to side one.  It's understood that you flip back to side one at
  164.       every significant pause in disk acess.  In particular, if you modify a
  165.       car, then flip the disk back to side one before you leave the car
  166.       modification menu.  After loading a track from side two, when you want to
  167.       return to the menu, flip back to side one BEFORE telling it to go back,
  168.       because it will hapilly try and load the menu from side two and crash.
  169.       From: Chuck Cochems (zaphod@camelot.bradley.edu)
  170.  
  171.    b. Mail Order Monsters
  172.  
  173.       This is a hint that works wonders on the 64 version of the game:
  174.       Copy your original disk (obviously not necessary for the emulators) and
  175.       change the disk name and ID (with a disk editor or utility program) to
  176.       "ownerdisk,ea"  This makes your master disk an owner disk (there's ~100
  177.       blocks free on the original, each owner takes ~1 block of Commie disk
  178.       space, so you'll probably not have to worry about running out of 
  179.       disk space.)
  180.       I have about 9 owners on a copy of the disk, and we have a lot of fun with
  181.       this game.  Just keep hitting RETURN when it wants a disk.  Enjoy. 
  182.       From: Michael Miller (mmiller3@gac.edu)
  183.  
  184.    c. Bruce Lee
  185.  
  186.       Actually, I have yet to find a version of this game which doesn't crash
  187.       on a real C64 (NTSC or PAL).  So, my advice is to reset and try again
  188.       if the game crashes on you.
  189.  
  190.   4. Converting between different file formats.
  191.  
  192.    Q: How can I convert the ZipCode files (1!..,2!..etc.) found on various
  193.       ftp-sites to a format usable by the emulators?
  194.    A: Grab the file zip2d64.arj on any of the emulator ftp-sites.  The
  195.       syntax for conversion is:
  196.    
  197.       zip2d64 zip.gam zipgame.d64
  198.  
  199.       to convert the files 1!zip.gam
  200.                            2!zip.gam
  201.                            3!zip.gam
  202.                            4!zip.gam
  203.  
  204.       to the file zipgame.d64.
  205.  
  206.       Alternatively, several C64 transfer utilities (64Copy and Star
  207.       Commander) have built-in utils for ZipCode conversion.
  208.  
  209.    Q: OK, but what about Lynx files (*.lnx)?
  210.    A: On the emulator ftp-sites there is also a DOS executable that
  211.       extracts files from a Lynx archive.  Alternatively, you can down-
  212.       load the C64 utility "Omega-Q" from the /utils directory at frodo
  213.       etc.  Put the .lnx file into a .d64 file, run Omega-Q and unlynx
  214.       the files directly to a .d64 quickly and easily. 
  215.  
  216.       The C64 transfer utilities 64Copy and Star Commander also are able
  217.       to convert Lynx files to a usable format.
  218.  
  219.    4. A list of ftp sites where emulation programs can be obtained.
  220.    ----------------------------------------------------------------
  221.  
  222.   Some of the emulation programs are duplicated at other sites. I have not
  223.   listed every site that has a certain emulator, although I may have listed
  224.   more than one site that has that emulator.
  225.  
  226.   If you would like to more about other cbm ftp sites then read the ftp list
  227.   which is posted to comp.sys.cbm regularly by Howard Herman
  228.   (72560.3467@CompuServe.COM).
  229.  
  230.   Any site maintainer who wishes their site listed here only needs to send
  231.   me mail advising me of that fact!
  232.  
  233.  
  234.   Format for listing:
  235.  
  236.   Site.Name              /Directory
  237.    MACHINE - program name
  238.  
  239.  
  240.    4.0.1 Site Maintainers.
  241.  
  242.    If you have any questions about specific emulator sites, then please
  243.    contact the person named below.
  244.  
  245.    Site:
  246.    -----
  247.    ftp.funet.fi         cbm-adm@ftp.funet.fi
  248.    ftp.seattlelab.com   ds@seattlelab.com (Derek Smith)
  249.    ftp.giga.or.at       Guenther.Bauer@giga.or.at (Guenther Bauer)
  250.    arnold.hiof.no       jonko@arnold.hiof.no
  251.  
  252.    4.0.2 Site IP addresses.
  253.  
  254.    Site:
  255.    -----
  256.  
  257.    frodo.hiof.no       158.36.33.4
  258.    ftp.seattlelab.com  204.250.145.1
  259.  
  260.  
  261.    4.0.3 WWW Info.
  262.  
  263.    With the rapid proliferation of Web sites having CBM info., it seems
  264.    fitting that they have their own section.
  265.  
  266.    http://www.hut.fi/~msmakela/cbm <Marko Makela (Fi) C64 Homepage
  267.    http://www.cs.umd.edu/users/fms/comp/Emulation/Commodore.html <U. Maryland 
  268.                 C64 Homepage
  269.    http://www.nada.kth.se/~d93-alo/c64/ <Adam Lorentzon, (Se) C64 files Homepage
  270.    http://www.infinet.com/~rbatina <Roberto's Homepage
  271.    http://http.ecn.bgu.edu/users/gforte/cbm.emu.faq.toc.html <Adrian Forte's
  272.           (Emulator FAQ Homepage)
  273.    http://www.csd.uu.se/~d94aca/vic20.html <Anders Carlsson, (Se) Vic 20 files
  274.           Homepage
  275.    http://131.188.190.131/~poldi/c64.html <Daniel Dallmann, Stuttgart, (De),
  276.           aka "Poldi", C64 files Homepage
  277.    http://stekt.oulu.fi/~jopi/ 
  278.           Jouko Valta (fi) - C128 technical docs, VICE emulation project
  279.    http://129.96.42.3:2374/~gardners/ <Paul Gardner-Stephen, Flinders U. (AU)
  280.           C64 files Homepage
  281.    http://www.seattlelab.com/c64s.htm <C64S Emulator @ SeattleLab.Com
  282.    HTTP://WWW.ENGR.WISC.EDU/~conover/c64.html <Joel Conover
  283.    http://stud1.tuwein.ac.at/~e9426444/index.html
  284.          This is the SID homepage, dedicated to music and stuff on the C64.
  285.    http://ludens.elte.hu/~sta/sc.html
  286.          Star Commander homepage - always get the latest version here
  287.  
  288.    4.1 C64 Emulators.
  289.  
  290.    Note: faui43.informatik.uni-erlangen.de:
  291.                          /mounts/epix/public/pub/pc/msdos/emulators/c64
  292.          appears to be mirroring frodo's /c64/emulator directory,
  293.          and they're therefore listed together.
  294.  
  295.  
  296.    4.1.1 C64 Emulators for the Amiga.
  297.  
  298.   faui43.informatik.uni-erlangen.de
  299.                          /mounts/epix/public/pub/pc/msdos/emulators/c64
  300.  
  301.   ftp.funet.fi           /pub/cbm/c64/emulation
  302.    AMIGA - TheA64Package.lha
  303.  
  304.   ccnga.uwaterloo.ca     /pub/cbm/emulation
  305.    AMIGA - thea64package.lha
  306.  
  307.   src.doc.ic.ac.uk       /packages/aminet/misc/emu
  308.    AMIGA - C64Emulator.lha
  309.  
  310.   ftp.wustl.edu          /systems/amiga/boing/utilities/emulators/c64
  311.    AMIGA - a64v2d1.lzh & a64v2d2.lzh  (TheA64Package.lha)
  312.                          /systems/amiga/aminet/misc/emu
  313.    AMIGA - sys.lha and sys.readme
  314.                          /pub/aminet/misc/emu
  315. +  AMIGA - FrodoV2_3.lha
  316.            MagiC64.lha
  317.  
  318.    4.1.2 C64 Emulators for the PC.
  319.  
  320.   faui43.informatik.uni-erlangen.de
  321.                          /mounts/epix/public/pub/pc/msdos/emulators/c64
  322.   frodo.hiof.no
  323.                          /pub/c64/utils
  324.  
  325.   * Note that frodo is an official mirror site of seattlelabs ftp site
  326.     (204.250.145.1)
  327.     It is legal for him (and others) to continue to distribute the old
  328.     versions of C64S (v0.9a(b,c)).
  329.  
  330.    IBM PC - c64.zip
  331.           - c64s09a.zip
  332.             c64s09b.arj
  333.             c64s09c.exe
  334.             c64s11bu.exe
  335.           - c64alive.zip
  336.             c64a09ah.zip
  337.           - c64sally.zip
  338.           - c64neu.zip
  339.  
  340.   ftp.funet.fi           /pub/cbm/c64/emulation
  341.    IBM PC - c64.zip
  342.           - c64emu.zip
  343.             c64s09b.arj
  344.  
  345.   ftp.uni-kl.de          /pub/pc/dos/misc
  346.    IBM PC - C64ALIVE.ZIP
  347.             C64_09AS.ZIP
  348.           - c64_emu.zip
  349.             c64s09b.arj
  350.  
  351.   ccnga.uwaterloo.ca     /pub/cbm/emulation
  352.    IBM PC - c64.zip
  353.  
  354.   wilbur.stanford.edu    /pub/emulators/c64
  355.    IBM PC - c64.zip
  356.  
  357.   ftp.uni-passau.de      /pub/ibmpc/msdos/emulator
  358.    IBM PC - C64S09B.ZIP
  359.           - c64alive.zip
  360.  
  361.   ftp.uni-giessen.de     /pub/incoming/pc
  362.    IBM PC - c64s09b.arj
  363.           - c64alive.zip
  364.  
  365.   ftp.rz.uni-hildesheim.de
  366.                          /pdsoft/pub/c64/emlators/pc64
  367.    IBM PC - pc64_d.zip
  368.           - pc64_e.zip
  369.  
  370.   CompuServe             Magna forum, Library 4 (DOS programs)
  371.    IBM PC - pc64_d.zip
  372.           - pc64_e.zip
  373.  
  374.  
  375.    4.1.3 C64 Emulators for the Atari.
  376.  
  377.   faui43.informatik.uni-erlangen.de
  378.                          /mounts/epix/public/pub/pc/msdos/emulators/c64
  379.   frodo.hiof.no          /pub/c64/utils
  380.    ATARI ST - c64-st.lzh
  381.  
  382.   faui43.informatik.uni-erlangen.de
  383.                          /mounts/faui45/atari/applications/emulators/c64
  384.    ATARI ST - c64.lha
  385.  
  386.   ftp.funet.fi           /pub/cbm/c64/emulation
  387.    ATARI ST - c64.lzh
  388.  
  389.  
  390.    4.1.4 C64 Emulators for the Macintosh.
  391.  
  392.   faui43.informatik.uni-erlangen.de
  393.                          /mounts/epix/public/pub/pc/msdos/emulators/c64
  394.   frodo.hiof.no          /pub/c64/utils
  395.    APPLE MAC - MAC64-04.HQX
  396.  
  397.   ftp.funet.fi           /pub/cbm/c64/emulation
  398.    APPLE MAC - mac64-04.hqx
  399.  
  400. + http://auto.tuwien.ac.at/~rlieger/Power64/Power64-11.sit
  401. +  APPLE MACINTOSH (PowerMac only!) - Power64-11.sit
  402.  
  403.    4.1.5 C64 Emulators for Unix.
  404.  
  405.   faui43.informatik.uni-erlangen.de
  406.                          /mounts/epix/public/pub/pc/msdos/emulators/c64
  407.   frodo.hiof.no          /pub/c64/utils
  408.    UNIX/X - x64-0.2.2.tar.gz
  409.  
  410.   ftp.funet.fi           /pub/cbm/c64/emulation
  411.    UNIX/X - x64-0.2.2.tar.gz
  412.    UNIX/X - FrodoV3_0.tar.gz
  413.  
  414.   ccnga.uwaterloo.ca     /pub/cbm/emulation
  415.    UNIX/X - x64-0.2.2.tar.gz
  416.  
  417.   wilbur.stanford.edu    /pub/emulators/c64
  418.    UNIX/X - x64-0.2.2.tar.gz
  419.  
  420.   http://stekt.oulu.fi:/~jopi/x64.html
  421.    x64 emulator documents and links to distribution sites.
  422.  
  423.    4.1.6 C64 Emulators for BeBox.
  424.  
  425.   ftp.funet.fi           /pub/CBM/emulation
  426.    BEBOX - FrodoV3_0.tar.gz
  427.  
  428.    4.2 VIC20 Emulators.
  429.  
  430.   ftp.hrz.uni-kassel.de  /pub/machines/vic-20/vic-emulator
  431.    AMIGA - vic-emu.lha
  432.  
  433.   src.doc.ic.ac.uk       /packages/aminet/misc/emu
  434.    AMIGA - vic-emu.lha
  435.  
  436.   ccnga.uwaterloo.ca     /pub/cbm/util64
  437.    C64 - vic-emulatorC64.lnx
  438.  
  439.  
  440.    4.3 C128 Emulators.
  441.  
  442.   See section 4.1.5.  X128 comes with the X64 emulator.
  443.  
  444.  
  445.    4.4 PET Emulators.
  446.  
  447.   No sites known.
  448.   
  449.  
  450.    4.5 SID Emulators.
  451.   
  452.   frodo.hiof.no      /pub/c64/sidmusic
  453.    IBM PC - sidpl???.zip
  454.    AMIGA  - playsid3.lha
  455.             delisid.lha
  456.    ATARI ST - mmm226.lzh
  457.  
  458.   cnam.cnam.fr           /pub/Amiga/mus/play
  459.    AMIGA - PlaySID2.2.lha
  460.  
  461.   ftp.germany.eu.net     /pub/comp/amiga/music
  462.    AMIGA - PlaySID2.1.dms
  463.  
  464.   ftp.uni-hamburg.de     /pub/dos/incoming
  465.    IBM PC - sidpl???.zip
  466.  
  467.   ftp.funet.fi           /pub/amiga/audio/apps/playback
  468.    AMIGA - PlaySID-2.0.lha
  469.  
  470.   ftp.uni-paderborn.de  /pub/pc-demos/music/programs/players
  471.    IBM PC - sidpl???.zip
  472.  
  473.  
  474.  
  475.    4.7 Other utilities & files.
  476.  
  477.    4.7.1 Utilities
  478.  
  479.   frodo.hiof.no         /pub/c64/utils
  480.    IBM PC - disk64e.arj
  481.             c64uti5.zip
  482.             maketape.arj
  483.             copy2d64.arj
  484.             zip2d64.arj
  485.             d64util.zip
  486.             d64_10.zip
  487.             d64zipcode.c
  488.             tr64_114.zip
  489.             tr_src11.zip
  490.             and many, many others..
  491.    AMIGA - maketape.arj
  492.            unt.lzh
  493.  
  494.   ftp.funet.fi          /pub/msdos/utilities/diskutil
  495.    IBM PC - copy2d64.arj
  496.             zip2d64.arj
  497.  
  498.   ftp.funet.fi          /pub/cbm/emulation
  499.    AMIGA - d64.lha
  500.    IBM PC - dir_d64.zip
  501.  
  502.   cnam.cnam.fr          /pub2/Amiga/emu
  503.    AMIGA - d64.lha
  504.  
  505.   ccnga.uwaterloo.ca
  506.    IBM PC - tr64_114.zip
  507.             tr_src11.zip
  508.             64copy20.zip
  509.  
  510.    4.7.2 Data files.
  511.  
  512.   If you are searching for games, then I would recommend two places:
  513.   arnold.hiof.no, and utopia.hacktic.nl. The files in the latter site are
  514.   in the original C64 format, and will require some conversion to use in
  515.   an emulator.
  516.  
  517.   The site rush.uwaterloo.ca is down permanently due to excess load on the
  518.   FTP machine. 
  519.  
  520.   nic.funet.fi          /pub/amiga/audio/misc/sid-tunes
  521.    AMIGA - C64MusicShow-1.lha  (for use with PlaySID/sidplay)
  522.            C64MusicShow-2.lha
  523.            Addition.lha
  524.  
  525.   ftp.cnam.fr           /pub2/Amiga/mods/PlaySid
  526.    AMIGA - C64MusicShow-1.lha  (for use with PlaySID/sidplay)
  527.            C64MusicShow-2.lha
  528.            Addition.lha
  529.  
  530.   ftp.cs.tu-berlin.de   /pub/amiga/audio/mods-c64
  531.    AMIGA - C64Sounds.lha  (for use with PlaySid/sidplay)
  532.  
  533.   ftp://ftp.wustl.edu/systems/amiga/aminet/mods/chip/
  534.   ftp://src.doc.ic.ac.uk/packages/aminet/mods/chip/
  535.    AMIGA - NemeSIDs-*  (collection of C64 music)
  536.    - note: these at just some of the aminet sites where the files should be
  537.            available.
  538.  
  539.   frodo.hiof.no         /pub/c64/sidmusic
  540.     AMIGA or
  541.     IBM PC - NemeSIDs*.lha      (The biggest collection so far)
  542.              rippoff5.zip       (New tunes not included anywhere else)
  543.              demo_new.lha       -"-
  544.              game_new.lha       -"-
  545.  
  546.   Also take a look at the SIDPLAY FAQ covering a list of Ami-Net FTP servers
  547.   and sidtunes related information.
  548.  
  549.  
  550.   =====================================================================
  551.  
  552.  
  553.    5. Emulator File Formats.
  554.    -------------------------
  555.  
  556.       As there are several emulators for different platforms, they all
  557.       cannot be made directly usable by other emulators, unless the author
  558.       has provided that facility.  Utilities to convert back into CBM
  559.       binary generally exist fortunately.
  560.  
  561.    5.1 C64 Emulators standard files - overview.
  562.  
  563.      This section shows the "normal" files used by each emulator.
  564.  
  565.  
  566.   Program       File type      Identification   Contents
  567.                                (name or method)
  568.  
  569.   c64.zip (PC)  disk image       VC1541.000     683 pcs 256-byte sectors
  570.                 tape image       -              not used
  571.  
  572.   C64S   (PC)   basic rom     }                 contains binary data for:
  573.                 kernel rom    }- romcode.c64    VC1541 (16384 bytes), chargen 
  574.                 chargen rom   }                 (4096),basic (8192) and kernel
  575.                 disk drive rom}                 (8192) = total 36864 bytes
  576.                 program          -              not used
  577.                 disk image 09c   *.d64          683 pcs 256-byte sectors
  578.                            09a,b testdisk.d64
  579.                 tape image       *.t64          ?
  580.  
  581.                  Note: the kernel part is modified.
  582.  
  583.   c64sally.zip  basic rom        A000BFFF.64F   8194 bytes of binary data (1)
  584.    (PC)         kernel rom       D000DFFF.64P   8194 bytes of binary data (1)
  585.                 chargen rom      E000FFFF.64P   4098 bytes of binary data (1)
  586.                 disk drive rom   -              not used
  587.                 program          *.64P          C64 program with load address
  588.                                                 also SEQ files via *.64S
  589.                 disk image       -              not used
  590.                 tape image       -              not used
  591.  
  592.   Frodo (Amiga/  basic rom       Basic ROM      8192 bytes of binary data
  593.     BeBox/Unix)  kernel rom      Kernal ROM     8192 bytes of binary data
  594.                  chargen rom     Char ROM       4096 bytes of binary data
  595.                  disk drive rom  1541 ROM       16384 bytes of binary data
  596.                  program         -              C64 program with load address
  597.                  disk image      -              683 pcs 256-byte sectors
  598.                  disk image      magic header   64 byte magic header and
  599.                                                 683 pcs 256-byte sectors
  600.  
  601.  
  602.   pc64*.zip     basic rom        *.64B          8192 bytes of binary data
  603.    (PC)         kernel rom       *.64K          8192 bytes of binary data
  604.                 chargen rom      *.64C          4096 bytes of binary data
  605.                 module at $8000  *.64M          8192 or 16384 bytes of binary
  606.                                                 data (8K at $A000 = *.64B)
  607.                 disk drive rom   VC1541.64D     16384 bytes of binary data
  608.                 program          *.P00          C64 program with load address
  609.                                                 preceded by 24 byte header.
  610.                 SEQ data file    *.S00          same as *.P00 with different
  611.                 USR data file    *.U00          | extensions. The 00 can be
  612.                 DEL data file    *.D00          | any numbers if the 16-to-8
  613.                 REL data file    *.R00          | mapping leads to duplicates.
  614.                 disk image       *.D64          683 pcs 256-byte sectors, plus
  615.                                                 optionally 683 bytes error info
  616.                 tape image       -              not used
  617.  
  618.   c64.lzh (ST)  basic rom        c64/_basic     8192 bytes of binary data
  619.                 kernel rom       c64/_kernal    8192 bytes of binary data
  620.                 chargen rom      c64/_font      4096 bytes of binary data
  621.                 disk drive rom   -              not used
  622.                 program          -              C64 program with load address
  623.                 disk image       -              not used
  624.                 tape image       -              not used
  625.  
  626.   x64 (UNIX)    basic rom        basic          8192 bytes of binary data (2)
  627.                 kernel rom       kernel         8192 bytes of binary data (2)
  628.                 chargen rom      -              not used
  629.                 disk drive rom   -              not used
  630.                 program          -              C64 program with load address
  631.                 disk image       magic header   64 byte magic header and
  632.                                                 683 pcs 256-byte sectors
  633.                 tape image       -              not used
  634.                  rom module       filename       8192 or 16384 byte cartridge,
  635.                                                  stored in binary format
  636.                 ram image        ram            RAMSIZE + 4103
  637.                    (x64 will load a ram image, eg. "the contents of RAM as
  638.                     in warm start" at startup, if one exists)
  639.                    Only the RAM is loaded at startup. CPU registers and I/O
  640.                    are loaded only via 'undump' in the monitor. (That way it
  641.                    won't keep crashing all the time.)
  642.  
  643.                 (1) Includes load address.
  644.                 (2) Default load address allowed.
  645.  
  646.  
  647.    5.2 Table of supported file formats.
  648.  
  649.      This section shows which emulators and utilities can access which file
  650.      formats. This is now a little more complete, thanks to Jouko Valta
  651.      (again :> ).
  652.  
  653.      Legend used in table:
  654.  
  655.        x = yes, fully supported, c = convertor provided, r = read-only, 
  656.        - = no, and empty = unknown.
  657.  
  658.      1. Emulators
  659.                      x64dsk   d64   t64   p00   CBM
  660.        x64 0.3.1        x      c     c     c     x
  661.        PC64 1.10        -      x     c     x     c
  662.        C64S 1.1A        -      x     x     c     c
  663.        C64Alive 0.9ah   -      -     -     -     x
  664.        MagiC64          -      x     x     x     x
  665.        Frodo V2.x       r      r     -     -     x
  666.        Frodo V3.x       x      x     -     -     x
  667.        VICE             x      c     c     x     x
  668. +      Power64 0.8      x      x     x     x     x
  669.  
  670.  
  671.      2. Transfer utils
  672.  
  673.                      x64dsk   d64   t64   p00   CBM   Transfer type
  674.        Star Commander   -      x     x     -     x    normal/fast
  675.        Trans64          x      x     x           x    normal
  676.        x1541 (old)      -      -     -     -     x    normal
  677.        x1541 (new)      -      -     -     -     x    normal
  678.        64Copy           x      x     x     x     x    n/a
  679.        UnD64            -      x     -     -     x    n/a
  680.  
  681.      3. Other utils
  682.  
  683.                      x64dsk   d64   t64   p00   CBM   ascii
  684.        fvcbm            x      x     x     x     x    -
  685.        c1541            x      c     c     x     x    -
  686.        petcat           -      -     -     x     x    x
  687.        TOK64            -      -     -     -     x    x
  688.  
  689.    5.3 Standard data files - internal formats.
  690.  
  691.      This section shows the internal format used by each filetype.  Most of
  692.      it was taken from the compatibility section of the x64 manual, and was
  693.      provided by Jouko 'Jopi' Valta.  That section is based on the information
  694.      acquired from news articles written by:
  695.       blohm@mathematik.uni-ulm.de (Guntram Blohm)
  696.       kbrisley@tsegw.tse.com      (Kevin Brisley)
  697.  
  698.  
  699.        File:  ram (x64)         Total Size: RAMSIZE + 4013
  700.        ---------------------------------------------------
  701.        Offset   Bytes      Description
  702.        0        RAMSIZE    contents of the RAM
  703.  
  704.      The following data is not included yet:
  705.        RAMSIZE   4096      I/O area with shadows
  706.        7                  CPU Registers: PC (LO/HI), AC, XR, YR, PS, SP
  707.  
  708.  
  709.         File:  x64 Disk File      Total Size: 174912
  710.        ------------------------------------------
  711.        Offset   Bytes      Description
  712.         0          4         Magic header: 'C',0x15, 0x41, 0x64
  713.  
  714.         4          4         Header Version:
  715.                          C1541 Version Major
  716.                          C1541 Version Minor
  717.                          Device Type:   0 = 1541
  718.                          Max Tracks:   35  (from disks v1.2 upwards)
  719.  
  720.        64      256 byte sectors
  721.  
  722.  
  723.        File:  *.d64 disk image   Total Size: 174878
  724.        ------------------------------------------
  725.        
  726.  
  727.       D64 file contains all sectors as they appear on the 1541 formatted disk.
  728.       Each sector is 256 bytes long. Error information (1 byte per sector)
  729.       can be added in the end of file.
  730.  
  731.       __________________________________
  732.       File types currently supported
  733.  
  734.       174848 bytes = 35 tracks
  735.       175531 bytes = 35 tracks + 683 bytes error information
  736.       196608 bytes = 40 tracks
  737.       197376 bytes = 40 tracks + 768 bytes error information
  738.  
  739.       _______________
  740.       Track sizes
  741.  
  742.       Tracks, size
  743.         1-17   21 sectors * 256 bytes
  744.        18-24   19 sectors * 256 bytes
  745.        25-30   18 sectors * 256 bytes
  746.        31-35   17 sectors * 256 bytes
  747.       *36-40*  17 sectors * 256 bytes
  748.  
  749.       Tracks 36-40 are non-standard.
  750.  
  751.       ____________________________________
  752.       Actual layout for 35 track image
  753.  
  754.        Offset, size, description
  755.         0*256, 256   track 1, sector 0
  756.         1*256, 256   track 1, sector 1
  757.          ...
  758.        20*256, 256   track 1, sector 20
  759.        21*256, 256   track 2, sector 0
  760.          ...
  761.       682*256, 256   track 35, sector 16
  762.       683*256, 683   error info (byte per sector in the same order)
  763.  
  764. Sectors are 256 bytes. Sector 0 is at offset $00000 in the .d64 file.
  765. Sector 1 is at offset $00100 in the .d64 file, and so on.
  766.  
  767. A normal 1541-format disk is divided into 4 'zones' -
  768. zone 1 = tracks 1-17 with 21 sectors (numbered 0-20)
  769. zone 2 = tracks 18-24 with 19 sectors (numbered 0-18)
  770. zone 3 = tracks 25-30 with 18 sectors (numbered 0-17)
  771. zone 4 = tracks 31-35 with 17 sectors (numbered 0-16)
  772.  
  773.   The directory lies on track 18.  The following info is for
  774.   track 18 -
  775.   sector 0 =      Block Availability Map (bytes 00-8f, bitmapped)
  776.                   bytes 90-9f = disk name (16 chars, space padded)
  777.                   The first 2 bytes are track and sector to the
  778.                   first directory block. Usually the first directory
  779.                   block is the very next block on the disk
  780.   directory blocks:
  781.                   byte 0 = track of next directory block
  782.                   byte 1 = sector of next directory block
  783.                   bytes 2-31 = file entry #1
  784.                   bytes 32-33 = unused (should be 0)
  785.                   bytes 34-63 = file entry #2
  786.                   bytes 64-65 = unused,  etc etc
  787.   The first byte of a file entry is the type of file ($82 = PRG,
  788.   $81 = SEQ, $83 = USR, $80 = DEL, $84 = REL).  The next two bytes
  789.   point to the track & sector of the first sector of the file.
  790.   The next 16 bytes is the filename (padded).  The last two bytes
  791.   (i.e. bytes 30 & 31) gives the block count of the file (in low
  792.   byte/high byte format).
  793.  
  794.   Each file block has 254 bytes of data, unless it is the last block. The
  795.   first 2 bytes of each block are the track and sector of the next block.
  796.   If the track is zero then this is the last block, and the sector # really
  797.   tells the number of bytes used out of the 254 possible. The use count is
  798.   the number of bytes used plus 1--so if the sector # has a $05, then really
  799.   only $04 bytes were used out of the last block.
  800.  
  801.   The directory is at offset $16500 in the .d64 files. Tracks references
  802.   start at 1. Sector references start at 0. So if the first 2 bytes of a
  803.   block are $06 04, the absolute location is at
  804.       5 * $1500 + 4 * $100.
  805.   (5 because that's $06 minus 1. $1500 because at track $06 there are 21
  806.   sectors per track, or $1500 bytes. 4 because that is the sector number,
  807.   and $100 because that's the number of bytes in a sector.)
  808.  
  809.   The disk has a total of 35 tracks. There are 17 trachs with 21 sectors (357
  810.   sectors total), 7 tracks with 19 sectors (133 sectors total), 6 tracks
  811.   with 18 sectors (108 sectors total), and 5 tracks with 17 sectors (85
  812.   sectors total). So total sectors per disk (or .d64 image) is
  813.     357+133+108+85 = 683 total, or 174,848 bytes total, which is the exact
  814.   size of the .d64 files.
  815.  
  816.  
  817.        File:  *.t64 tape image Total Size: Varies
  818.        ------------------------------------------
  819.        Offset   Bytes      Description
  820.         0         64          Tape Record:
  821.         0         32            Tape description + EOF (for type)
  822.        32          2            Tape version: $0100
  823.        34          2            Max number of files, in LO/HI
  824.        36          2            Number of existing files, in LO/HI
  825.        38          2             -
  826.        40         24            User description, as displayed in file menu
  827.  
  828.        64         32*n       File Record(s) for each of n files:
  829.         +0       1            Slot allocation flag:
  830.                               00 = free entry
  831.                               01 = normal tape file
  832.                               03 = memory snapshot v0.9, uncompressed
  833.                               02..FF = reserved for memory snapshots
  834.         +1       1            File type
  835.         +2       2            Start address in C64 memory, in LO/HI
  836.         +4       2            End address in C64 memory, in LO/HI
  837.         +6       2             -
  838.         +8       4            File start address on the image, in LO/HI
  839.        +12       4             -
  840.        +16      16            C64 filename
  841.  
  842.       64+32*n   ???      File contents.
  843.  
  844.  
  845.    Wolfgang Lorenz (author of PC64) posted the following in an open letter
  846.    to Miha Peternel (author of C64S).  AFAIK there's been no reply.
  847.  
  848.    There is some ambiguity in the T64 file format. Could you please make a
  849.    statement if the following assumptions are correct?
  850.  
  851.    Tape Record
  852.  
  853.    Offset, size, description
  854.         0, 32    DOS tape description, ASCII charset, contains either
  855.                  "C64S tape file",13,10,"Demo tape",26,"......" (no 0!) or
  856.                  "C64S tape image file",0,0,0,0,0,0,0,0,0,0,0,0 or
  857.                  "C64 tape image file",13,10,0,0,0,0,0,0,0,0,0,0,0
  858.                  To identify a T64 file, search for the sub-strings "C64" and
  859.                  "tape".
  860.        32, 2     tape version, currently $0100 or $0101
  861.        34, 2     number of directory entries, mostly $001E
  862.        36, 2     number of used entries (0 for unknown)
  863.        38, 2     free
  864.        40, 24    user description as displayed in tape menu, CBM charset,
  865.                  padded with space
  866.  
  867.    File Record
  868.  
  869.    Offset, size, description
  870.         0, 1     entry type
  871.                  0 = free entry
  872.                  1 = normal tape file
  873.                  3 = memory snapshot v0.9, uncompressed
  874.                  2..255 reserved (for memory snapshots...)
  875.         1, 1     C64 secondary address, mostly 1
  876.         2, 2     start address
  877.         4, 2     end address
  878.         6, 2     free
  879.         8, 4     offset of file contents start within T64 file
  880.        12, 4     free
  881.        16, 16    C64 file name, CBM charset, padded with space
  882.  
  883.    Example Structure Definitions for C and C++
  884.  
  885.    struct {
  886.      char acTag[32];
  887.      word wVersion;
  888.      word wEntries;
  889.      word wUsedEntries;
  890.      word wReserved;
  891.      byte abName[24];
  892.    } T64Header;
  893.  
  894.    struct {
  895.      byte bType;
  896.      byte bSecAdr;
  897.      word wStartAdr;
  898.      word wEndAdr;
  899.      word wReserved;
  900.      long lOffset;
  901.      long lReserved;
  902.      byte abName[16];
  903.    } T64Entry;
  904.  
  905.  
  906.        File:  CBM Files      Total Size: Varies
  907.        ---------------------------------------
  908.        Offset   Bytes      Description
  909.         0          2          Load address in LO/HI format.
  910.  
  911.  
  912.        File:  *.p00 file image Total Size: Varies
  913.        ------------------------------------------
  914.        Offset   Bytes      Description
  915.         0          8         String "C64File" terminated by 00.
  916. +       9         17         Original C64 Filename.
  917. +      25          1         Record size for REL files.
  918.        26                  Original file
  919.  
  920.  
  921.   5.4 Converting between file formats.
  922.  
  923.   Instructions on how to interconvert between all of the formats used
  924.   by the various C64 emulators.
  925.   
  926.   One thing to keep in mind is that there are some 'all in one' conversion
  927.   programs which convert from any format to another; 64Copy is an example.
  928.  
  929.   Formats:
  930.  
  931.   1) .d64 - Disk image used by C64s 
  932.   2) .t64 - Tape image used by C64s
  933.   3) .p00 - image format used by PC64
  934.  
  935.   Conversions:
  936.  
  937.   1) .p00 to .t64
  938.    a) Start PC64
  939.    b) First get a "Manager" window up
  940.    c) Place the cursor on the *.P00 file you want converted
  941.    d) Then use "Manager/Export" (ALT-M-E). This will save it as a *.PRG.
  942.    e) Then use MAKETAPE.EXE to make a *.t64 file.
  943.  
  944.   2) .t64 to .p00
  945.    Use t64top00.exe, which comes with PC64 and creates p00 copies of all the
  946.    t64 files in a directory tree.
  947.  
  948.  
  949.  
  950.    6. How to extract the Rom images required by the emulators.
  951.    -----------------------------------------------------------
  952.  
  953.   Type in the following files on your C64 and run them to get the rom image
  954.   files. Then transfer those files onto the machine that you require.
  955.   See the comp.sys.cbm FAQ section 7 for some details on transfers.
  956.  
  957.   Alternatively, You could get TheA64Package.lha and extract the file called
  958.   TheA64Package/64Prgs/SaveROMs. This will extract the basic and kernal roms
  959.   from a C64.
  960.  
  961.   Note that this stuff is only required if your emulator doesn't come with
  962.   ROMs.  Both C64S and PC64 come with ROMS, so don't worry about that.
  963.  
  964.    6.1 C64 roms - Basic, Kernal & Charset.
  965.  
  966.   C64 BASIC ROM extractor:
  967.  
  968.    10 OPEN 5,8,2,"64BASIC,P,W"
  969.    20 FOR X=40960 TO 49151:PRINT#2,CHR$(PEEK(X));:NEXT
  970.    30 CLOSE 5
  971.  
  972.   C64 KERNEL ROM extractor:
  973.  
  974.    10 OPEN 5,8,2,"64KERNEL,P,W"
  975.    20 FOR X=57344 TO 65535:PRINT#2,CHR$(PEEK(X));:NEXT
  976.    30 CLOSE 5
  977.  
  978.   C64 BASIC and Kernal ROM extractor:
  979.  
  980.    10 OPEN5,8,5,"0:C64ROM,S,W"
  981.    20 FOR X=40960 TO 49151
  982.    30 A$=CHR$(PEEK(X))
  983.    40 PRINT#5,A$;:NEXT
  984.    50 FOR X=57344 TO 65535
  985.    60 A$=CHR$(PEEK(X))
  986.    70 PRINT#5,A$;:NEXT
  987.    90 CLOSE5
  988.  
  989.   C64 Character ROM extractor:
  990.  
  991.    10 POKE 56334,0:POKE 1,51
  992.    20 FOR X=16384 TO 20479:POKE X,PEEK(X+36864):NEXT
  993.    30 POKE 1,55:POKE 56334,1
  994.    40 OPEN 5,8,5,"64CHARGEN,P,W"
  995.    50 FOR X=16384 TO 20479
  996.    60 PRINT#5,CHR$(PEEK(X));:NEXT
  997.    70 CLOSE 5
  998.  
  999.    6.2 VIC20 roms - Basic, Kernel & Charset.
  1000.  
  1001.   VIC20 BASIC ROM extractor:
  1002.  
  1003.    10 OPEN 5,8,2,"V20BASIC,P,W"
  1004.    20 FOR X=49152 TO 57343:PRINT#5,CHR$(PEEK(X));:NEXT
  1005.    30 CLOSE 5
  1006.  
  1007.   VIC20 KERNEL ROM extractor:
  1008.  
  1009.    10 OPEN 5,8,2,"V20KERNEL,P,W"
  1010.    20 FOR X=57344 TO 65535:PRINT#5,CHR$(PEEK(X));:NEXT
  1011.    30 CLOSE 5
  1012.  
  1013.   VIC20 Character ROM extractor:
  1014.  
  1015.    10 OPEN 5,8,2,"V20CHARGEN,P,W"
  1016.    20 FOR X=32768 TO 36863:PRINT#5,CHR$(PEEK(X));:NEXT
  1017.    30 CLOSE 5
  1018.  
  1019.  
  1020.    6.3 1541 rom.
  1021.  
  1022.   C1541 ROM extractor:
  1023.  
  1024.   Extract area $C000-$FFFF
  1025.  
  1026.    100 B=16384:I=B
  1027.    110 OPEN 15,8,15
  1028.    120 FOR H=192 TO 255:PRINT H;
  1029.    130 FOR L=0 TO 255
  1030.    140 PRINT#15,"M-R";CHR$(L);CHR$(H)
  1031.    150 GET#15,A$
  1032.    160 Z=FRE(0)
  1033.    170 POKE I,ASC(A$+CHR$(0))
  1034.    180 I=I+1:NEXT L
  1035.    190 NEXT H
  1036.    200 CLOSE 15
  1037.    210 OPEN 5,8,5,"0:C1541ROM,P,W"
  1038.    220 FOR X=B TO I-1:PRINT#5,CHR$(PEEK(X));:NEXT
  1039.    230 CLOSE 5
  1040.  
  1041.  
  1042.  
  1043.    7. Other information.
  1044.    ---------------------
  1045.  
  1046.    7.1 Newsgroups worth reading.
  1047.  
  1048.   If you want to ask a question about an emulator or read what other
  1049.   people are saying, then I recommend that you read comp.emulators.cbm :)
  1050.   Another good group to read for general info about Commodore 8bit machines
  1051.   is comp.sys.cbm.
  1052.  
  1053.  
  1054.    7.2 Emulator benchmarks.
  1055.  
  1056.   Some people are interested in the relative speed of the emulators with
  1057.   respect to the actual machine it's emulating.  So far, only the following
  1058.   simple test program has been used in benchmarking emulators.  More tests
  1059.   and more machines are needed!
  1060.  
  1061.   Benchmark test #1.
  1062.  
  1063.   10 a = ti
  1064.   20 print "[clr/home]"
  1065.   30 for i = 1 to 1000
  1066.   40 print "[up][up]"; i ; i * i
  1067.   50 next
  1068.   60 print "[down][down] time = "; ti -a
  1069.  
  1070.   Results:
  1071.  
  1072.   "Machine"               "Config"     "Software"   "Score"
  1073.  
  1074.   C64                     PAL          CBM BASIC     1508
  1075.   C128                    64 mode      CBM BASIC     1590
  1076.   C128                    40 col       CBM BASIC     2226
  1077.   C128                    40 col fast  CBM BASIC     1071 (1)
  1078.   C128                    80 col       CBM BASIC     4072
  1079.   C128                    80 col fast  CBM BASIC     2062
  1080.   Sun SPARC IPC           8Mb RAM      x64-0.2.2     1452 (2)
  1081.   Osborne 486 DX2/50      16Mb RAM     c64hercules    286
  1082.   Osborne 486 DX2/50      16Mb RAM     c64sally       234
  1083.   Osborne 486 DX2/50      16Mb RAM     c64s10cd      1486
  1084.   Osborne 486 DX2/50      16Mb RAM     c64neu        2985
  1085.   Osborne 486 DX2/50      16Mb RAM     c64alive       --- (3)
  1086.   Amiga 3000/25           6Mb RAM      A64v2          788
  1087.   Amiga 4000/060-50       20Mb RAM     Frodo V2.3    1463
  1088.   Amiga 4000/060-50       20Mb RAM     Frodo SC V2.3 1508
  1089.   Atari 1040 STfm         Hi-res       c64.tos       3567 (58 s real)
  1090.   Atari 1040 STfm         Low-res      c64.tos       3624 (58 s real)
  1091. + Power Macintosh         6100/60      Power64       1510 (4)
  1092.  
  1093.  
  1094.   Notes:
  1095.   (1) Screen automatically blanked during test.
  1096.   (2) "ti" clock doesn't necessarilly keep real time in x64.  In x64 the ti
  1097.       clock is relative to the virtual speed, not the wall clock time.
  1098.   (3) c64alive wouldn't run on the test machine. Doh.
  1099. + (4) Emulator speed set to 100%; Other speeds selectable
  1100.  
  1101.  
  1102.    7.3 Emulator detection.
  1103.  
  1104.   Writers of software on the C64 or emulators may wish to know whether the
  1105.   "machine" their code is executing on is a real C64, or not.  A small
  1106.   BASIC program was written by Wolfgang Lorenz, and posted by Paul David
  1107.   Doherty, which tests this.
  1108.  
  1109.   Critical addresses for the PIA expansion
  1110.  
  1111.   The critical addresses of the device are 57216--57343 ($DF80--$DFFF).
  1112.   There is the PIA chip to which you POKE the values to switch memory
  1113.   blocks. The PIA does not have 128 registers, as one might think. There
  1114.   are sixteen copies of its 4 addresses in that memory area. For instance,
  1115.   the addresses 57216, 57284, 57288 and 57340 are equivalent to each
  1116.   other.
  1117.  
  1118.    Here's a small CBM-BASIC program by Wolfgang Lorenz which tests 
  1119.    whether it is running on a real C-64 or on an emulator.  It also
  1120.    contains a suggested method for emulators to allow other programs
  1121.    to detect them.  This detection method is already implemented 
  1122.    in the PC64 and C64S emulators; it would be nice if other emulators
  1123.    (A64, MAC64, C64ALIVE, X64) would adhere to it too.
  1124.  
  1125. 100 rem ********* where am i? *********
  1126. 110 rem -------------------------------
  1127. 120 rem this is the recommended method
  1128. 130 rem how to detect a c64 emulator,
  1129. 140 rem e.g. for disabling fast loaders
  1130. 150 rem
  1131. 160 rem - the byte at $dfff changes
  1132. 170 rem   between $55 and $aa
  1133. 180 rem - the byte at $dffe contains
  1134. 190 rem   the manufacturer code letter:
  1135. 200 rem   a = c64alive
  1136. 210 rem   f = frodo
  1137. 220 rem   p = personal c64
  1138. 230 rem   s = c64 software emulator
  1139. 240 rem   x = x64
  1140. 250 rem   / = power64
  1141. 260 rem - the word at $dffc contains
  1142. 270 rem   the emulator version number,
  1143. 280 rem   e.g. $0120 for version 1.2
  1144. 290 rem - the bytes from $dfa0 contain
  1145. 300 rem   a copyright string with
  1146. 310 rem   emulator name and version,
  1147. 320 rem   $0d, copyright and $00.
  1148. 330 rem -------------------------------
  1149. 340 :
  1150. 500 print
  1151. 510 x=57343: rem $dfff
  1152. 520 if peek(x)<>85 then if peek(x)<>85 then 1000
  1153. 530 if peek(x)<>170 then 1000
  1154. 540 if peek(x)<>85  then 1000
  1155. 550 if peek(x)<>170 then 1000
  1156. 560 m$=chr$(peek(57342)): rem $dffe
  1157. 570 print "manufacturer = '"; m$; "' ";
  1158. 580 if m$="a" then print "(c64alive)";
  1159. 590 if m$="f" then print "(frodo)";
  1160. 600 if m$="p" then print "(pc64)";
  1161. 610 if m$="s" then print "(c64s)";
  1162. 620 if m$="x" then print "(x64)";
  1163. 630 if m$="/" then print "(power64)";
  1164. 640 print
  1165. 650 :
  1166. 700 v=peek(57341)*256 + peek(57340): rem $dffd/$dffc
  1167. 710 h$="0123456789abcdef"
  1168. 720 for i=0 to 3
  1169. 730 v$=mid$(h$,1+(v and 15),1)+v$
  1170. 740 v=int(v/16)
  1171. 750 next
  1172. 760 print "version = $";v$
  1173. 770 print
  1174. 780 :
  1175. 800 i=57248: rem $dfa0
  1176. 810 x=peek(i)
  1177. 820 if x=0 then print: end
  1178. 830 print chr$(x);
  1179. 840 i=i+1
  1180. 850 goto 810
  1181. 860 :
  1182. 900 rem -------------------------------
  1183. 910 rem these are manufacturer-specific
  1184. 920 rem workarounds, which should be
  1185. 930 rem replaced with the official
  1186. 940 rem emulator detection method
  1187. 950 :
  1188. 1000 if peek(60682)<>0 then 1100: rem $ed0a
  1189. 1010 print "c64 software emulator"
  1190. 1020 print "(c)1991-94 miha peternel"
  1191. 1030 end
  1192. 1040 :
  1193. 1100 if peek(60736)<>0 then 1200: rem $ed40
  1194. 1110 print "x64 (version 1 or 2)"
  1195. 1120 print "(c)1993-94 j.sonninen/t.rantanen/j.valta"
  1196. 1130 end
  1197. 1140 :
  1198. 1200 x=57087: rem $deff
  1199. 1210 if peek(x)+peek(x)+peek(x)<>0 then 2000
  1200. 1220 print "c64alive"
  1201. 1230 print "(c)1993-94 f.littmann developments"
  1202. 1240 end
  1203. 1250 :
  1204. 2000 print "this is an original c64 or c128"
  1205.  
  1206.  
  1207.   You can distinquish a real C128 from C64 by testing the VDC status register
  1208.   at $D600/$D601: If the value written to $D601 remains intact, its a C128 in
  1209.   either mode, otherwise a real C64.  There is no way (or need) to tell C64
  1210.   from C64c though.
  1211.  
  1212.  
  1213.    7.4 Other sources of information.
  1214.  
  1215.    There are a number of WWW addresses that may be of interest...
  1216.  
  1217.   - The Commodore 64 WWW Server.
  1218.     (Has a few c64s and x64 documents)
  1219.     http://www.hut.fi/~msmakela/c64.html
  1220.  
  1221.   - WWW Personal Computing and Emulation Homepage
  1222.     (General emulator pages, not just Commodore)
  1223.     http://www.cs.umd.edu/users/fms/comp/
  1224.  
  1225.   - Commodore emulation
  1226.     (The Commodore section from the link above)
  1227.     http://www.cs.umd.edu/users/fms/comp/Emulation/Commodore.html
  1228.  
  1229.   - X64 Emulator / Simulator For Unix
  1230.     (Offical site for x64)
  1231.     http://stekt.oulu.fi/~jopi/x64.html
  1232.  
  1233.   - Commodore 64 computing
  1234.     (Home of the comp.sys.cbm FAQ)
  1235.     http://www.msen.com/~brain
  1236.  
  1237.   - Seattle Labs
  1238.     (Marketers of C64S)
  1239.     http://www.seattlelab.com/c64s.htm
  1240.  
  1241.   - Frodo and ShapeShifter Homepage
  1242.     (Official site for the Frodo emulator)
  1243.     http://www.uni-mainz.de/~bauec002
  1244.  
  1245.   - The Official PC64 Homepage
  1246.     http://ourworld.compuserve.com/homepages/pc64/
  1247.  
  1248. + - The Power64 Homepage
  1249. +   http://www.auto.tuwien.ac.at/~rlieger/Power64/Power64.html
  1250.  
  1251.  
  1252.   =========================================================================
  1253.  
  1254.  
  1255.